/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.brain.conf.mbean;

import com.brain.conf.dto.MaterialDto;
import com.brain.conf.dto.MonedaDto;
import com.brain.conf.dto.ProductoDetaDto;
import com.brain.conf.dto.ProductoDto;
import com.brain.conf.dto.ProveedorDto;
import com.brain.conf.dto.TarifaDto;
import com.brain.conf.dto.TarifaProductoDto;
import com.brain.conf.dto.TerceroDto;
import com.brain.conf.dto.UnidadMedidaDto;
import com.brain.conf.manager.MaterialManager;
import com.brain.conf.manager.MonedaManager;
import com.brain.conf.manager.ProductoDetaManager;
import com.brain.conf.manager.ProductoManager;
import com.brain.conf.manager.ProveedorManager;
import com.brain.conf.manager.TarifaManager;
import com.brain.conf.manager.TarifaProductoManager;
import com.brain.conf.manager.TerceroManager;
import com.brain.conf.manager.UnidadMedidaManager;
import com.brain.conf.view.util.ConstantesConf;
import com.brain.core.common.UtilCore;
import com.brain.core.configuracion.WebServletContextListener;
import com.brain.core.dto.OrganizacionDto;
import com.brain.core.dto.ParametroDto;
import com.brain.core.view.mbean.*;

import com.brain.core.exception.DAOException;
import com.brain.core.manager.BitacoraManager;
import com.brain.core.manager.CatalogoManager;
import com.brain.core.manager.OrganizacionManager;
import com.brain.core.manager.ParametroManager;
import com.brain.core.manager.RecursosManager;
import com.brain.segu.dto.UsuarioDto;
import com.brain.segu.manager.UsuarioManager;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.faces.model.SelectItem;
import org.apache.log4j.Logger;
import org.primefaces.context.RequestContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

/**
 *
 * @author Indra
 */
@Controller("productoMBean")
@Scope("session")
public class ProductoMBean extends GenericMBean implements Serializable {

    private static Logger logger = Logger.getLogger(ProductoMBean.class);
    @Resource
    private ProductoManager manager;
    @Resource
    private OrganizacionManager organizacionManager;
    @Resource
    private TarifaProductoManager tarifaProductoManager;
    @Resource
    private MaterialManager materialManager;
    @Resource
    private ProveedorManager proveedorManager;
    @Resource
    private TerceroManager terceroManager;
    @Resource
    private MonedaManager monedaManager;
    @Resource
    private ProductoDetaManager productoDetaManager;
    @Resource
    private UnidadMedidaManager umManager;
    @Resource
    private TarifaManager tarifaManager;
    @Resource
    private ParametroManager parametroManager;
    @Resource
    private CatalogoManager catalogoManager;
    @Resource
    private UsuarioManager usuarioManager;
    @Resource
    private BitacoraManager bitacoraManager;
    @Resource
    private ArchivoMBean archivoMBean;
    @Resource
    private RecursosManager recursosManager;
    @Autowired
    private ApplicationMBean applicationMBean;
    @Autowired
    private SessionMBean sessionMBean;
    private List<ProductoDto> lista;
    private List<ProductoDetaDto> listaDeta;
    private ProductoDto dto;
    private ProductoDto dtoFiltro;
    private String keyEntidad = "key.entidad.producto";
    private SelectItem[] siTipoProducto;
    private SelectItem[] siTipoProductoFiltro;
    private List<OrganizacionDto> listaOrganizaciones;
    private List<ParametroDto> listaGrupos;
    private List<ParametroDto> listaGruposFiltro;
    private List<ParametroDto> listaFamilias;
    private List<ParametroDto> listaFamiliasFiltro;
    private List<MonedaDto> listaMonedas;
    private List<UnidadMedidaDto> listaUnidadMedida;
    private TarifaProductoDto tarifaProductoDto;
    private MaterialDto materialDto;
    private ProveedorDto proveedorDto;
    private List<TarifaDto> listaTarifas;
    private ProductoDto productoSelected;
    private ProductoDetaDto detaDto;
    private int accion;
    private int estadoActivo;
    private int estadoActivoFijo;
    private int estadoPerecible;

    public ProductoMBean() {
        this.dtoFiltro = new ProductoDto();
    }

    public String iniciar() {
        this.estadoActivo = 2;
        this.estadoActivoFijo = 2;
        this.estadoPerecible = 2;
        this.lista = null;
        this.listaDeta = null;
        this.dto = null;
        this.tarifaProductoDto = null;
        this.materialDto = null;
        this.proveedorDto = null;
        this.dtoFiltro = new ProductoDto();
        this.dtoFiltro.setTipoProducto(ConstantesConf.ValoresConstantes.PRODUCTO_COD_TIPO_TODOS);
        this.dtoFiltro.setGrupoDto(new ParametroDto(parametroManager.getIdTodos()));
        this.dtoFiltro.setFamiliaDto(new ParametroDto(parametroManager.getIdTodos()));
        this.dtoFiltro.setDescripcion("");
        this.dtoFiltro.setSku("");
        this.dtoFiltro.setPerecible(Boolean.TRUE);
        this.dtoFiltro.setEstado(Boolean.TRUE);
        this.dtoFiltro.setActivoFijo(Boolean.FALSE);
        return manager.getUrlLista();
    }

    public String nuevo() {
        sessionMBean.setAccion(applicationMBean.getNuevo());
        sessionMBean.setTitulo(recursosManager.construirTitulo(keyEntidad, sessionMBean.getAccion()));
        this.dto = manager.inicializar();
        this.dto.setPerecible(Boolean.TRUE);
        this.tarifaProductoDto = tarifaProductoManager.inicializar();
        this.proveedorDto = proveedorManager.inicializar();
        this.materialDto = materialManager.inicializar();
        this.detaDto = productoDetaManager.inicializar(dto);
        return manager.getUrl();
    }

    public void nuevaTarifaProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getNuevo());
        this.tarifaProductoDto = tarifaProductoManager.inicializar();
        this.tarifaProductoDto.setProductoDetaDto(detaDto);
    }

    public void nuevoMaterialProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getNuevo());
        this.materialDto = materialManager.inicializar();
        this.materialDto.setProductoDetaDto(detaDto);
    }

    public void nuevoProveedorProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getNuevo());
        this.proveedorDto = proveedorManager.inicializar();
        this.proveedorDto.setProductoDetaDto(detaDto);
    }

    public String editar() {
        sessionMBean.setAccion(applicationMBean.getEditar());
        sessionMBean.setTitulo(recursosManager.construirTitulo(keyEntidad, sessionMBean.getAccion()));
        this.tarifaProductoDto = tarifaProductoManager.inicializar();
        this.materialDto = materialManager.inicializar();
        this.proveedorDto = proveedorManager.inicializar();
        try {
            this.dto = manager.obtenerPorId(this.dto.getId());
            this.dto.setComentario("");
        } catch (DAOException ex) {
            logger.error(ex);
        }
        this.detaDto = productoDetaManager.inicializar(dto);
        return manager.getUrl();
    }

    public void editarTarifaProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getEditar());
        try {
            this.tarifaProductoDto = tarifaProductoManager.obtenerPorId(this.tarifaProductoDto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
        }
    }

    public void editarMaterialProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getEditar());
        try {
            this.materialDto = materialManager.obtenerPorId(this.materialDto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
        }
    }

    public void editarProveedorProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getEditar());
        try {
            this.proveedorDto = proveedorManager.obtenerPorId(this.proveedorDto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
        }
    }

    public String ver() {
        sessionMBean.setAccion(applicationMBean.getVer());
        sessionMBean.setTitulo(recursosManager.construirTitulo(keyEntidad, sessionMBean.getAccion()));
        this.tarifaProductoDto = tarifaProductoManager.inicializar();
        this.materialDto = materialManager.inicializar();
        this.proveedorDto = proveedorManager.inicializar();
        try {
            this.dto = manager.obtenerPorId(this.dto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
        }
        this.detaDto = productoDetaManager.inicializar(dto);
        return manager.getUrl();
    }

    public void verTarifaProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getVer());
        try {
            this.tarifaProductoDto = tarifaProductoManager.obtenerPorId(this.tarifaProductoDto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
        }
    }

    public void verMaterialProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getVer());
        try {
            this.materialDto = materialManager.obtenerPorId(this.materialDto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
        }
    }

    public void verProveedorProducto() {
        sessionMBean.setAccionDetalle(applicationMBean.getVer());
        try {
            this.proveedorDto = proveedorManager.obtenerPorId(this.proveedorDto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
        }
    }

    public void buscar() {
        try {
            //Activo
            if (estadoActivo == 0) {
                this.dtoFiltro.setEstado(Boolean.FALSE);
            }
            if (estadoActivo == 1) {
                this.dtoFiltro.setEstado(Boolean.TRUE);
            }
            if (estadoActivo == 2) {
                this.dtoFiltro.setEstado(null);
            }
            //Activo Fijo
            if (estadoActivoFijo == 0) {
                this.dtoFiltro.setActivoFijo(Boolean.FALSE);
            }
            if (estadoActivoFijo == 1) {
                this.dtoFiltro.setActivoFijo(Boolean.TRUE);
            }
            if (estadoActivoFijo == 2) {
                this.dtoFiltro.setActivoFijo(null);
            }
            //Perecible
            if (estadoPerecible == 0) {
                this.dtoFiltro.setPerecible(Boolean.FALSE);
            }
            if (estadoPerecible == 1) {
                this.dtoFiltro.setPerecible(Boolean.TRUE);
            }
            if (estadoPerecible == 2) {
                this.dtoFiltro.setPerecible(null);
            }
            this.lista = this.manager.obtener(this.dtoFiltro);
        } catch (DAOException ex) {
            showError("ERROR_SISTEMA", ex.getMessage());
        }
    }

    public void buscarProductoDeta() {
        try {
            this.listaDeta = this.productoDetaManager.obtener(this.dtoFiltro);
        } catch (DAOException ex) {
            showError("ERROR_SISTEMA", ex.getMessage());
        }
    }

    public String guardar() {
        if (manager.guardar(this.dto) != null) {
            this.editar();
        }
        return null;
    }

    public void guardarProductoDeta() {
        RequestContext context = RequestContext.getCurrentInstance();
        boolean resultado = true;
        try {
            if (productoDetaManager.obtenerCantidadPorProdYUM(detaDto) <= 0) {
                productoDetaManager.guardar(detaDto, this.accion);
                if (detaDto.getId() != null) {
                    detaDto = productoDetaManager.inicializar(dto);
                    dto = manager.obtenerPorId(dto.getId());
                }
            } else {
                resultado = false;
                showError(UtilCore.Internacionalizacion.getMensajeInternacional("producto.tab.um.mensaje.error"));
            }
        } catch (DAOException ex) {
            resultado = false;
            logger.error(ex);
            recursosManager.showError("ERROR_SISTEMA", ex.getMessage());
        }
        context.addCallbackParam("CallbackParam", resultado);
    }

    public void nuevoProductoDeta() {
        this.accion = applicationMBean.getNuevo();
        detaDto = productoDetaManager.inicializar(dto);
    }

    public void verProductoDeta() {
        this.accion = applicationMBean.getVer();
        try {
            this.tarifaProductoDto = tarifaProductoManager.inicializar();
            this.proveedorDto = proveedorManager.inicializar();
            this.materialDto = materialManager.inicializar();
            this.detaDto = productoDetaManager.obtenerPorId(detaDto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
            showError("ERROR_SISTEMA", ex.getMessage());
        }
    }

    public void editarProductoDeta() {
        this.accion = applicationMBean.getEditar();
        try {
            this.tarifaProductoDto = tarifaProductoManager.inicializar();
            this.proveedorDto = proveedorManager.inicializar();
            this.materialDto = materialManager.inicializar();
            this.detaDto = productoDetaManager.obtenerPorId(detaDto.getId());
        } catch (DAOException ex) {
            logger.error(ex);
            showError("ERROR_SISTEMA", ex.getMessage());
        }
    }

    public void guardarTarifaProducto() {
        RequestContext context = RequestContext.getCurrentInstance();
        boolean resultado = true;
        try {
            if (tarifaProductoManager.guardar(tarifaProductoDto) != null) {
                this.detaDto = this.productoDetaManager.obtenerPorId(this.detaDto.getId());
            } else {
                resultado = false;
            }
        } catch (DAOException ex) {
            showError("ERROR_SISTEMA", ex.getMessage());
        }
        context.addCallbackParam("CallbackParam", resultado);
    }

    public void guardarMaterialProducto() {
        RequestContext context = RequestContext.getCurrentInstance();
        boolean resultado = true;
        try {
            if (materialManager.guardar(materialDto) != null) {
                this.detaDto = this.productoDetaManager.obtenerPorId(this.detaDto.getId());
            } else {
                resultado = false;
            }
        } catch (DAOException ex) {
            showError("ERROR_SISTEMA", ex.getMessage());
        }
        context.addCallbackParam("CallbackParam", resultado);
    }

    public void guardarProveedorProducto() {
        RequestContext context = RequestContext.getCurrentInstance();
        boolean resultado = true;
        try {
            if (proveedorManager.guardar(proveedorDto) != null) {
                this.detaDto = this.productoDetaManager.obtenerPorId(this.detaDto.getId());
            } else {
                resultado = false;
            }
        } catch (DAOException ex) {
            showError("ERROR_SISTEMA", ex.getMessage());
        }
        context.addCallbackParam("CallbackParam", resultado);
    }

    public String verBitacora() {
        bitacoraManager.cargarBitacoraEntidad(manager.getIdEntidad(), this.dto.getId());
        return null;
    }

    public String verBitacoraDetalle() {
        bitacoraManager.cargarBitacoraEntidad(productoDetaManager.getIdEntidad(), this.detaDto.getId());
        return null;
    }

    public String verBitacoraMaterialProducto() {
        bitacoraManager.cargarBitacoraEntidad(materialManager.getIdEntidad(), this.materialDto.getId());
        return null;
    }

    public String verBitacoraProveedorProducto() {
        bitacoraManager.cargarBitacoraEntidad(proveedorManager.getIdEntidad(), this.proveedorDto.getId());
        return null;
    }

    public String verArchivos() {
        sessionMBean.setEntidad(manager.getIdEntidad());
        sessionMBean.setRegistro(this.dto.getId());
        archivoMBean.cargarArchivos();

        return null;
    }

    public List<UsuarioDto> autoCompletarUsuario(String query) {
        List<UsuarioDto> results = null;
        try {
            results = usuarioManager.autoCompletarUsuariosPorEmpresa(query);
        } catch (DAOException ex) {
            logger.error(ex);
            results = new ArrayList<UsuarioDto>();
        }
        return results;
    }

    public List<TerceroDto> autoCompletarTercero(String query) {
        List<TerceroDto> results = null;
        try {
            results = terceroManager.autoCompletarTerceroPorEmpresa(query);
        } catch (DAOException ex) {
            logger.error(ex);
            results = new ArrayList<TerceroDto>();
        }
        return results;
    }

    public List<ProductoDto> autoCompletarProducto(String query) {
        ProductoManager productoManager = (ProductoManager) WebServletContextListener.getApplicationContext().getBean("productoManager");
        List<ProductoDto> results = null;
        try {
            results = productoManager.autoCompletarProductosPorEmpresa(query);
        } catch (DAOException ex) {
            logger.error(ex);
            results = new ArrayList<ProductoDto>();
        }
        return results;
    }

    public List<ProductoDto> autoCompletarProductoNoServicio(String query) {
        ProductoManager productoManager = (ProductoManager) WebServletContextListener.getApplicationContext().getBean("productoManager");
        List<ProductoDto> results = null;
        try {
            results = productoManager.autoCompletarProductosNoServicioPorEmpresa(query);
        } catch (DAOException ex) {
            logger.error(ex);
            results = new ArrayList<ProductoDto>();
        }
        return results;
    }

    public List<ProductoDetaDto> autoCompletarProductoDeta(String query) {
        ProductoDetaManager productoDetaManager = (ProductoDetaManager) WebServletContextListener.getApplicationContext().getBean("productoDetaManager");
        List<ProductoDetaDto> results = null;
        try {
            results = productoDetaManager.autoCompletarProductosDetaPorEmpresa(query);
        } catch (DAOException ex) {
            logger.error(ex);
            results = new ArrayList<ProductoDetaDto>();
        }
        return results;
    }

    public List<ProductoDetaDto> autoCompletarProductoDetaNoServicio(String query) {
        ProductoDetaManager productoDetaManager = (ProductoDetaManager) WebServletContextListener.getApplicationContext().getBean("productoDetaManager");
        List<ProductoDetaDto> results = null;
        try {
            results = productoDetaManager.autoCompletarProductosDetaNoServicioPorEmpresa(query);
        } catch (DAOException ex) {
            logger.error(ex);
            results = new ArrayList<ProductoDetaDto>();
        }
        return results;
    }

    public String verPropietario() {
        sessionMBean.setEntidad(manager.getIdEntidad());
        sessionMBean.setRegistro(dto.getId());
        PropietarioMBean propietarioMBean = (PropietarioMBean) WebServletContextListener.getApplicationContext().getBean("propietarioMBean");
        propietarioMBean.setEmpresa(dto.getEmpresaDto().getId());
        propietarioMBean.cargarPropietariosRegistro();
        propietarioMBean.inicializarCampos();
        return null;
    }

    public List<ProductoDto> autoCompletarProductoMenos(String query) {
        List<ProductoDto> results = null;
        try {
            results = manager.autoCompletarProductosPorEmpresaMenos(dto, query);
        } catch (DAOException ex) {
            logger.error(ex);
            results = new ArrayList<ProductoDto>();
        }
        return results;
    }

    public void handleTarifaChange() {
        try {
            if (tarifaProductoManager.obtenerCantTarifaProducto(tarifaProductoDto) > 0) {
                showError(UtilCore.Internacionalizacion.getMensajeInternacional("tarifa.producto.mensaje.duplicado"));
            }
        } catch (DAOException ex) {
            showError("ERROR_SISTEMA", ex.getMessage());
        }
    }

    public void handleMaterialChange() {
        try {
            if (materialManager.obtenerCantMaterialesPorProducto(materialDto) > 0) {
                showError(UtilCore.Internacionalizacion.getMensajeInternacional("producto.material.mensaje.duplicado"));
            }
        } catch (DAOException ex) {
            showError("ERROR_SISTEMA", ex.getMessage());
        }
    }

    public void handleTerceroChange() {
        try {
            if (proveedorManager.obtenerCantProveedoresPorProducto(proveedorDto) > 0) {
                showError(UtilCore.Internacionalizacion.getMensajeInternacional("producto.proveedor.mensaje.duplicado"));
            }
        } catch (DAOException ex) {
            showError("ERROR_SISTEMA", ex.getMessage());
        }
    }

    public void mostrarProducto() {
        System.out.print(productoSelected.getId());
    }

    public String retroceder() {
        buscar();
        return manager.getUrlLista();
    }

    public static Logger getLogger() {
        return logger;
    }

    public static void setLogger(Logger logger) {
        ProductoMBean.logger = logger;
    }

    public ProductoManager getManager() {
        return manager;
    }

    public void setManager(ProductoManager manager) {
        this.manager = manager;
    }

    public BitacoraManager getBitacoraManager() {
        return bitacoraManager;
    }

    public void setBitacoraManager(BitacoraManager bitacoraManager) {
        this.bitacoraManager = bitacoraManager;
    }

    public RecursosManager getRecursosManager() {
        return recursosManager;
    }

    public void setRecursosManager(RecursosManager recursosManager) {
        this.recursosManager = recursosManager;
    }

    public ApplicationMBean getApplicationMBean() {
        return applicationMBean;
    }

    public void setApplicationMBean(ApplicationMBean applicationMBean) {
        this.applicationMBean = applicationMBean;
    }

    public SessionMBean getSessionMBean() {
        return sessionMBean;
    }

    public void setSessionMBean(SessionMBean sessionMBean) {
        this.sessionMBean = sessionMBean;
    }

    public List<ProductoDto> getLista() {
        return lista;
    }

    public void setLista(List<ProductoDto> lista) {
        this.lista = lista;
    }

    public ProductoDto getDto() {
        return dto;
    }

    public void setDto(ProductoDto dto) {
        this.dto = dto;
    }

    public ProductoDto getDtoFiltro() {
        return dtoFiltro;
    }

    public void setDtoFiltro(ProductoDto dtoFiltro) {
        this.dtoFiltro = dtoFiltro;
    }

    public String getKeyEntidad() {
        return keyEntidad;
    }

    public void setKeyEntidad(String keyEntidad) {
        this.keyEntidad = keyEntidad;
    }

    public SelectItem[] getSiTipoProducto() {
        return manager.siTiposProducto();
    }

    public void setSiTipoProducto(SelectItem[] siTipoProducto) {
        this.siTipoProducto = siTipoProducto;
    }

    public SelectItem[] getSiTipoProductoFiltro() {
        return manager.siTiposProductoFiltro();
    }

    public void setSiTipoProductoFiltro(SelectItem[] siTipoProductoFiltro) {
        this.siTipoProductoFiltro = siTipoProductoFiltro;
    }

    public List<OrganizacionDto> getListaOrganizaciones() throws DAOException {
        listaOrganizaciones = organizacionManager.obtenerOrganizacionesPorEmpresaSession();
        return listaOrganizaciones;
    }

    public void setListaOrganizaciones(List<OrganizacionDto> listaOrganizaciones) {
        this.listaOrganizaciones = listaOrganizaciones;
    }

    public List<ParametroDto> getListaGrupos() {
        return this.recursosManager.obtenerParametrosActivosPorCatalogoSistema(ConstantesConf.CatalogoParametro.PRODUCTO_GRUPO);
    }

    public void setListaGrupos(List<ParametroDto> listaGrupos) {
        this.listaGrupos = listaGrupos;
    }

    public List<ParametroDto> getListaFamilias() {
        return this.recursosManager.obtenerParametrosActivosPorCatalogoSistema(ConstantesConf.CatalogoParametro.PRODUCTO_FAMILIA);
    }

    public void setListaFamilia(List<ParametroDto> listaFamilias) {
        this.listaFamilias = listaFamilias;
    }

    public List<MonedaDto> getListaMonedas() throws DAOException {
        listaMonedas = monedaManager.obtenerMonedasActivasPorEmpresa();
        return listaMonedas;
    }

    public void setListaMonedas(List<MonedaDto> listaMonedas) {
        this.listaMonedas = listaMonedas;
    }

    public List<UnidadMedidaDto> getListaUnidadMedida() throws DAOException {
        listaUnidadMedida = umManager.obtenerTodosActivos();
        return listaUnidadMedida;
    }

    public void setListaUnidadMedida(List<UnidadMedidaDto> listaUnidadMedida) {
        this.listaUnidadMedida = listaUnidadMedida;
    }

    public TarifaProductoDto getTarifaProductoDto() {
        return tarifaProductoDto;
    }

    public void setTarifaProductoDto(TarifaProductoDto tarifaProductoDto) {
        this.tarifaProductoDto = tarifaProductoDto;
    }

    public List<TarifaDto> getListaTarifas() throws DAOException {
        listaTarifas = tarifaManager.obtenerActivosPorOrganizacion();
        return listaTarifas;
    }

    public void setListaTarifas(List<TarifaDto> listaTarifas) {
        this.listaTarifas = listaTarifas;
    }

    public List<ParametroDto> getListaGruposFiltro() {
        return this.catalogoManager.obtenerParametrosActivosPorCatalogoAdd(ConstantesConf.CatalogoParametro.PRODUCTO_GRUPO, parametroManager.getIdTodos());
    }

    public void setListaGruposFiltro(List<ParametroDto> listaGruposFiltro) {
        this.listaGruposFiltro = listaGruposFiltro;
    }

    public List<ParametroDto> getListaFamiliasFiltro() {
        return this.catalogoManager.obtenerParametrosActivosPorCatalogoAdd(ConstantesConf.CatalogoParametro.PRODUCTO_FAMILIA, parametroManager.getIdTodos());
    }

    public void setListaFamiliasFiltro(List<ParametroDto> listaFamiliasFiltro) {
        this.listaFamiliasFiltro = listaFamiliasFiltro;
    }

    public MaterialDto getMaterialDto() {
        return materialDto;
    }

    public void setMaterialDto(MaterialDto materialDto) {
        this.materialDto = materialDto;
    }

    public ProveedorDto getProveedorDto() {
        return proveedorDto;
    }

    public void setProveedorDto(ProveedorDto proveedorDto) {
        this.proveedorDto = proveedorDto;
    }

    public ProductoDto getProductoSelected() {
        return productoSelected;
    }

    public void setProductoSelected(ProductoDto productoSelected) {
        this.productoSelected = productoSelected;
    }

    public ProductoDetaDto getDetaDto() {
        return detaDto;
    }

    public void setDetaDto(ProductoDetaDto detaDto) {
        this.detaDto = detaDto;
    }

    public List<ProductoDetaDto> getListaDeta() {
        return listaDeta;
    }

    public void setListaDeta(List<ProductoDetaDto> listaDeta) {
        this.listaDeta = listaDeta;
    }

    public int getAccion() {
        return accion;
    }

    public void setAccion(int accion) {
        this.accion = accion;
    }

    public int getEstadoActivo() {
        return estadoActivo;
    }

    public void setEstadoActivo(int estadoActivo) {
        this.estadoActivo = estadoActivo;
    }

    public int getEstadoActivoFijo() {
        return estadoActivoFijo;
    }

    public void setEstadoActivoFijo(int estadoActivoFijo) {
        this.estadoActivoFijo = estadoActivoFijo;
    }

    public int getEstadoPerecible() {
        return estadoPerecible;
    }

    public void setEstadoPerecible(int estadoPerecible) {
        this.estadoPerecible = estadoPerecible;
    }
}
